CREATE EXTERNAL TABLE jms_dwd.dwd_s01_whole_operations_trace_mid_dt(
   `waybill_no` string COMMENT '运单号',
   `step` int COMMENT '全网点轨迹步数',
   `scan_type` string COMMENT '扫描类型',
   `network_code` string COMMENT '网点编码',
   `network_type` string COMMENT '网点类型,1.加盟商,2.转运中心,3.集散点,4.普通网点,5.代理区,6.总部,0.其他',
   `network_scan_time_early` timestamp COMMENT '网点所有操作最早扫描时间',
   `scan_time_early` timestamp COMMENT '网点单类操作最早扫描时间',
   `scan_time_last` timestamp COMMENT '网点单类操作最晚扫描时间',
   `prev_network_code` string COMMENT '上一站网点编码',
   `prev_network_type` string COMMENT '上一站网点类型,1.加盟商,2.转运中心,3.集散点,4.普通网点,5.代理区,6.总部,0.其他',
   `next_network_code` string COMMENT '下一站网点编码',
   `next_network_type` string COMMENT '下一站网点类型,1.加盟商,2.转运中心,3.集散点,4.普通网点,5.代理区,6.总部,0.其他',
   `step_center` int COMMENT '0：普通网点，非0：中心网点正序',
   `step_center_reserve` int COMMENT '0：普通网点，非0：中心网点倒序',
   `step_entrepot` int COMMENT '0：普通网点，非0：集散网点正序',
   `step_entrepot_reserve` int COMMENT '0：普通网点，非0：集散网点逆序',
   `recordid` string COMMENT '记录编号',
   `packagecode` string COMMENT '所属包号',
   `nextstationcode` string COMMENT '上下一站编号',
   `nextstation` string COMMENT '上一站或下一站',
   `destination` string COMMENT '目的地点',
   `scanusercode` string COMMENT '扫描雇员编号',
   `scanuser` string COMMENT '扫描雇员',
   `source` string COMMENT '来源',
   `weight` string COMMENT '扫描重量',
   `expresstype` string COMMENT '扫描类型',
   `returnflag` string COMMENT '退件标志',
   `elescaleflag` string COMMENT '电子秤标志',
   `pistolid` string COMMENT '巴枪ID',
   `shipment_no` string COMMENT '任务编号',
   `network_name` string COMMENT '网点名称')
 COMMENT '运单操作轨迹长表中间表，维度:运单+站点+操作类型，分区字段：最晚扫描时间yyyy-MM-dd'
 PARTITIONED BY (
   `dt` string COMMENT '更新/创建日期(yyyy-mm-dd)')
 ROW FORMAT SERDE
   'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
 STORED AS INPUTFORMAT
   'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
 OUTPUTFORMAT
   'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
 LOCATION
   '/dw/hive/jms_dwd.db/external/dwd_s01_whole_operations_trace_mid_dt'
 TBLPROPERTIES (
   'discover.partitions'='true',
   'parquet.column.index.access'='true')